《Neural Graph Collaborative Filtering》
个性化推荐无处不在,已广泛应用于电商、广告、社交媒体等众多在线服务。个性化推荐的核心是根据购买和点击等历史交互(historical interaction
)来估计用户接受某个 item
的可能性。
协同过滤(collaborative filtering: CF
)通过假设行为相似的用户对 item
表现出相似的偏好来解决这个问题。为了实现这个假设,一个常见的范式(paradigm
)是参数化(parameterize
)用户和 item
以重建历史交互,并根据参数(parameter
)来预估用户偏好。
一般而言,可学习的 CF
模型有两个关键组件(key component
):
embedding
:将用户和 item
转换为向量化的 representation
。
交互建模:基于 embedding
重建历史交互。
例如:
矩阵分解( matrix factorization: MF
)直接将 user id / item id
映射到 embedding
向量,并使用内积对 user-item
交互进行建模。
协同深度学习(collaborative deep learning
)通过整合从 item
的丰富的辅助信息(side information
)中学到的 deep representation
来扩展 MF embedding function
。
神经协同过滤模型(neural collaborative filtering model
)用非线性神经网络代替 MF
的内积交互函数。
translation-based CF model
使用欧氏距离作为交互函数。
尽管这些方法很有效,但是我们认为它们不足以为 CF
产生令人满意的 embedding
。关键原因是embedding
函数缺乏关键协同信号(collaborative signal
)的显式编码,这种编码隐藏在user-item
交互中从而揭示用户(或 item
)之间的行为相似性。更具体而言,大多数现有方法仅使用描述性特征(例如 ID
和属性)来构建 embedding
函数,而没有考虑 user-item
交互。因此,由此产生的 embedding
可能不足以捕获协同过滤效果(effect
)。user-item
交互仅用于定义模型训练的目标函数。因此,当 embedding
不足以捕获 CF
时,这些方法必须依靠交互函数来弥补次优( suboptimal
)的 embedding
的不足。
虽然将 user-item
交互集成到 embedding
函数中在直观上很有用,但是要做好并非易事。特别是在实际应用中,user-item
交互的规模很容易达到数百万甚至更大,这使得提取所需要的的协同信号变得困难。在论文 《Neural Graph Collaborative Filtering》
中,作者通过利用来自 user-item
交互的高阶连通性(high-order connectivity
)来应对这一挑战,这是一种在交互图结构(interaction graph structure
)中编码协同信号的自然方式。
下图说明了高阶连通性的概念。待推荐的用户是 user-item
交互图的左子图中用双圆圈来标记。右子图显示了从
路径 item
更长的路径 item
此外,从 item
item
论文提出对 embedding
函数中的高阶连通性信息进行建模。论文没有将交互图扩展为实现起来很复杂的树,而是设计了一种神经网络方法在图上递归地传播 embedding
。这是受到图神经网络最近发展的启发,可以将其视为在 embedding
空间中构建信息流(information flow
)。具体而言,作者设计了一个 embedding propagation layer
,它通过聚合交互的item
(或者user
)的 embedding
来改进refine
用户(或者 item
)的 embedding
。通过堆叠多个 embedding propagation layer
,模型可以显式强制 embedding
来捕获高阶连通性中的协同信号。以上图为例,堆叠两层可以捕获
论文在三个公共 benchmark
上进行了广泛的实验,验证了神经图协同过滤(Neural Graph Collaborative Filtering: NGCF
)方法的合理性和有效性。
最后值得一提的是,尽管在最近的一种名叫 HOP-Rec
的方法中已经考虑了高阶连通性信息,但是它仅用于丰富训练数据。具体而言,HOPRec
的预测模型仍然是 MF
,而且它是通过优化用高阶连通性增强的损失函数来训练的。和 HOP-Rec
不同,NGCF
贡献了一种新技术将高阶连通性集成到预测模型中,从经验上讲,它比 HOP-Rec
更好地嵌入 CF
。
总而言之,论文的主要贡献:
论文强调在基于模型的 CF
方法的 embedding
函数中利用协同信号的重要性。
论文提出了 NGCF
,这是一种基于图神经网络的新推荐框架,它通过执行 embedding
传播,以高阶连通性的形式对协同信号进行显式编码。
论文对三个百万规模的数据集进行实证研究。大量结果证明了 NGCF
的 SOTA
性能,以及通过神经embedding
传播来提高 embedding
质量方面的有效性。
论文回顾了现有的 model-based CF
、graph-based CF
、基于图神经网络的方法的现有工作,这些方法和本文的工作最为相关。这里,论文强调这些方法和 NGCF
的不同之处。
Model-Based CF
方法:现代推荐系统通过向量化表示(vectorized representation
)来参数化( parameterize
)用户和 item
,并基于模型参数重建 user-item
交互数据。例如,MF
将每个 user ID
和 item ID
投影为 embedding
向量,并在它们之间进行内积以预测交互。为了增强 embedding
函数,已经付出了很多努力来融合诸如 item content
、社交关系、item
关系、用户评论、外部知识图谱等辅助信息(side information
)。
虽然内积可以迫使观察到的、交互的 user embedding
和 item embedding
彼此接近,但是其线性不足以揭示用户和 item
之间复杂的非线性关系。为此,最近的努力侧重于利用深度学习技术来增强交互函数,从而捕获用户和 item
之间的非线性特征交互。例如,神经协同模型(如 NeuMF
)采用非线性神经网络作为交互函数。同时,基于翻译的 CF
模型,例如 LRML
用欧氏距离来建模交互强度(interaction strength
)。
尽管取得了巨大的成功,但我们认为 embedding
函数的设计不足以为协同过滤产生最佳的 embedding
,因为协同过滤信号只能被隐式( implicitly
)地捕获。总结这些方法,embedding
函数将描述性特征(descriptive feature
)(如 ID
特征和属性特征)转换为向量,而交互函数作为向量上的相似性度量。理想情况下,当 user-item
交互被完美重建时,行为相似性的传递特性(transitivity property
)可以被捕获。然而,前面示例(高阶连通性概念的示例)中显示的这种传递效应(transitivity effect
)并没有被显式地编码,因此无法保证间接连接的用户和 item
在 embedding
空间中也是接近的。如果没有对协同信号进行显式编码,就很难获得满足所有特性的 embedding
。
即,传统的方法仅优化了
user-item
的一阶邻近性,并没有优化高阶邻近性。另外这种邻近性并不是在模型结构中显式编码的,而是通过目标函数来优化的。
Graph-Based CF
方法:另一个研究方向利用 user-item interaction graph
来推断用户偏好。
早期的努力,如 ItemRank
和 BiRank
采用标签传播的思想来捕获协同效应(CF effect
)。为了给一个用户在所有item
上打分,这些方法将用户历史交互的item
打上label
,然后在图上传播标签。由于推荐分是基于历史互动item
和目标 item
之间的结构可达性(structural reachness
)(可以视为一种相似性)而获得的,因此这些方法本质上属于基于邻域(neighbor-based
)的方法。然而,这些方法在概念上不如基于模型的协同过滤方法,因为它们缺乏模型参数来优化推荐目标函数(既没有模型参数、又没有目标函数、更没有优化过程)。
最近提出的 HOP-Rec
方法通过将基于图的方法和基于 embedding
的方法相结合来缓解这个问题(缺乏模型参数来优化推荐目标函数的问题)。该方法首先执行随机游走以丰富用户和 multi-hop
连接的 item
之间的交互。然后它基于丰富的user-item
交互数据(通过高阶连通性增强的正样本)训练具有 BPR
目标函数的 MF
从而构建推荐模型。HOP-Rec
优于 MF
的性能证明,结合连通性信息有利于在捕获CF
效应时获得更好的 embedding
。然而,我们认为 HOP-Rec
没有充分探索高阶连通性,它仅仅用于丰富训练数据,而不是直接有助于模型的 embedding
函数(因为推断时不会用到正样本增强技术,而是用到 embedding
函数)。此外,HOP-Rec
的性能在很大程度上取决于随机游走,这需要仔细地调优,例如设置合适的衰减因子。
图卷积网络(Graph Convolutional Network
):通过在 user-item
交互图上设计专门的图卷积运算,我们使 NGCF
有效地利用高阶连通性中的 CF
信号。这里我们讨论现有的、也采用图卷积运算的方法。
GC-MC
在 user-item
交互图上应用了图卷积网络(graph convolution network: GCN
),但是它仅使用一个卷积层来利用 user-item
之间的直接连接。因此,它无法揭示高阶连通性中的协同信号。
PinSage
是一个工业解决方案,它在 item-item
图中采用了多个图卷积层从而进行 Pinterest
图像推荐。因此,CF
效应是在 item
关系的层面上捕获的,而不是在集体(collective
)的用户行为的层面上。
Spectral CF
提出了一种谱卷积操作来发现谱域中用户和 item
之间的所有可能的连接。通过图邻接矩阵的特征分解,可以发现 user-item pair
对之间的连接。然而,特征分解导致了很高的计算复杂度,非常耗时并且难以支持大规模的推荐场景。
NGCF
模型的架构如下图所示(给出了用户 item
affinity score
),其中包含三个组件(components
):
一个 embedding
层:提供 user embedding
和 item embedding
。
多个 embedding
传播层:通过注入高阶连通性关系来refine embedding
。
一个prediction
层: 聚合来自不同传播层的 refined embedding
并输出 user-item
的相似性得分(affinity score
)。
遵循主流推荐模型,我们用 embedding
向量 embedding
向量 item
embedding
维度。这可以看做是将参数矩阵( parameter matrix
)构建为 embedding look-up table
:
其中 item
数量。
值得注意的是,这个 embedding table
作为 user embedding
和 item embedding
的初始状态(refine
之前的状态),并以端到端的方式进行优化。
在传统的推荐模型如 MF
和神经协同过滤中,这些 ID embedding
直接输入一个交互层(interaction layer
)来实现分数预估。
相比之下,在我们的 NGCF
框架中,我们通过在 user-item
交互图上传播 embedding
来 refine embedding
。这导致了对推荐更有效的 embedding
,因为 embedding
的 refinement
步骤显式地将协同信号注入到 embedding
中。
接下来我们基于 GNN
的消息传递框架,沿着图结构捕获协同信号并优化 user embedding
和 item embedding
。我们首先说明单层embedding
传播层(Embedding Propagation Layer
)的设计,然后将其推广到多个连续传播层。
一阶传播 First-order Propagation
:直观地,交互的item
提供了关于用户偏好的直接证据。类似地,消耗一个item
的用户可以被视为item
的特征,并用于度量两个item
的协同相似性(collaborative similarity
)。我们在此基础上在连接(connected
)的用户和 item
之间执行 embedding
传播,用两个主要操作来形式化(formulating
)流程:消息构建(message construction
)和消息聚合(message aggregation
)。
消息构建:对一个连接的 user-item pair
对
其中:
message embedding
。
message encoding
函数,函数的输入为 item embedding
user embedding
系数 edge
decay factor
)。
在本文中,我们定义
其中:
item
数量),item
与仅考虑 graph convolution network
)不同,这里我们额外将 affinity
),例如从相似的item
传递更多消息。这不仅提高了模型的表示能力(representation ability
),还提高了推荐性能。
遵循图卷积网络,我们将 graph Laplacian norm
) item
从representation learning
的角度来看,item
对用户偏好的贡献程度。
从消息传递的角度来看,考虑到被传播的消息应该随着路径长度(path length
)衰减,discount factor
)。
消息聚合:在这一阶段,我们聚合从用户 refine
用户 representation
。具体而言,我们定义聚合函数为:
其中:
embedding
传播层之后获得的用户 representation
。
LeakyReLU
激活函数允许消息对正(positive
)信号和小负(negative
)信号进行编码。
除了从邻域 self-connection
):
这个自连接保留了
注意:这里的
类似地,我们可以通过与item
连接的用户传播的消息来获得 item
representation
总而言之,embedding
传播层的优势在于显式利用一阶连通性信息来关联 user representation
和 item representation
。
在广告和推荐场景中,
item
的直接邻域(和 item
有互动的用户集合)可能高达百万甚至千万级别,而用户 的直接邻域(用户 互动的历史 item
集合)通常都比较小。如何处理这种非对称的、庞大的邻域是一个难点。
高阶传播(High-order Propagation
):基于一阶连通性(first-order connectivity
)建模来增强representation
,我们可以堆叠更多 embedding
传播层来探索高阶连通性(high-order connectivity
)信息。这种高阶连通性对于编码协同信号以估计用户和 item
之间的相关性分数(relevance score
)至关重要。通过堆叠 embedding
传播层,用户(或者 item
)能够接收来自 L-hop
邻居传播的消息。
在第 representation
被递归地表示为:
其中被传播的消息定义为:
其中:
注意:这里对于
item representation
,它记住了 (l-1) - hop
邻域的消息。
user representation
,它也也记住了 (l-1) - hop
邻域的消息。
类似地,我们也可以得到item
representation
。
如下图所示为针对用户 embedding
传播,像 embedding
传播过程中捕获。即,来自 embedding
传播层无缝地将协同信号注入到 representation learning
过程。
矩阵形式的传播规则(Propagation Rule in Matrix Form
):为了提供embedding
传播的整体视图(holistic view
),并便于batch
实现,我们提供了 layer-wise
传播规则的矩阵形式:
其中:
embedding
传播层得到的用户 representation
和 item representation
。 representation
,即
user-item graph
的拉普拉斯矩阵:
其中 user-item
交互矩阵,degree matrix
)(
因此
它就是
通过实现矩阵形式的传播规则,我们可以用一种相当有效的方式同时更新所有用户和所有 item
的 representation
。这种方式允许我们抛弃节点采样过程(这个节点采样过程通常用于图卷积网络,使得图卷积网络可以应用于大规模的graph
)。
对于工业场景海量用户(如十亿级)和海量
item
(如亿级),那么矩阵形式是不可行的,因为现有的计算资源无法处理如此规模的矩阵。
经过 representation
,即 representation
强调通过不同连通性传递的消息,因此它们在反映用户偏好方面有不同的贡献。因此,我们将这些 representation
拼接起来,构成用户 representation
。
对于item
item representaiton
item
representation
。最终我们得到 user representation
和 item representation
为:
其中 ||
表示向量拼接。
通过这种方式,我们不仅用 embedding
传播层丰富了initial embeddings
(即 embedding
层得到的初始 embedding
),还允许通过调整
注意,除了拼接之外,还可以应用其它聚合方式,如加权平均、最大池化、LSTM
等,这意味着在组合不同阶次的连通性时有不同的假设。使用拼接聚合的优势在于它的简单性,因为它不需要学习额外的参数,并且它已经在最近的图神经网络中证明非常有效。
最后,我们使用内积来估计用户 item
在这项工作中,我们强调embedding
函数的学习,因此仅使用内积这种简单的交互函数。其它更复杂的选择,如基于神经网络的交互函数,留待未来的研究工作。
为了学习模型参数,我们优化了在推荐系统中广泛应用的 pairwise BPR loss
。该损失函数考虑了观察到的和未观察到的 user-item
交互之间的相对顺序。
具体而言,BPR
假设观察到的 user-item
交互更能够反映用户的偏好,因此应该比未观察到的交互分配更高的预测值。因此目标函数为:
其中:
pairwise
训练数据。
sigmoid
函数。
L2
正则化系数。
我们使用 mini-batch
的 Adam
优化算法来优化预估模型。具体而言,对于一个 batch
的随机采样的三元组 L
步传播之后建立它们的 representation
模型大小(Model Size
):值得指出的是,尽管 NGCF
在每个传播层 embedding
矩阵 embedding
矩阵来自于 embedding look-up table
user-item
图结构和权重矩阵转换而来。
因此,和最简单的、基于 embedding
的推荐模型 MF
相比,我们的 NGCF
只是多了 5
的数,并且 embedding size
(远小于用户数量和 item
数量),因此这个额外的参数规模几乎可以忽略不计。
例如,在我们实验的 Gowalla
数据集(20k
用户和 40k item
)上,当 embedding size = 64
并且我们使用3
个尺寸为 64 x 64
的传播层时,MF
有 450
万参数,而我们的 NGCF
仅使用了 2.4
万额外的参数。
总之,NGCF
使用很少的额外参数来实现高阶连通性建模。
Message and Node Dropout
:虽然深度学习模型具有很强的表示能力,但通常会出现过拟合现象。Dropout
是防止神经网络过拟合的有效解决方案。遵从图卷积网络的前期工作,我们提出在 NGCF
中采用两种 dropout
技术:message dropout
和 node dropout
。
message dropout
:随机丢弃传出的消息(outgoing message
)。具体而言,我们以概率 refine representation
。
node dropout
:随机阻塞一个节点并丢弃该节点传出的所有消息。对于第 dropout ratio
。
注意,dropout
仅用于训练并且必须在测试期间禁用。
message dropout
使得 representaion
对于 user-item
之间单个连接具有更强的鲁棒性,而node dropout
则侧重于减少特定用户或特定 item
的影响。我们在实验中研究 message dropout
和 node dropout
对于 NGCF
的影响。
这里我们首先展示 NGCF
如何推广 SVD++
,然后我们分析 NGCF
的时间复杂度。
NGCF
和 SVD++
:SVD++
可以看做是没有高阶传播层的 NGCF
的特例。
具体而言,我们将 1
。在传播层中,我们禁用了转换矩阵和非线性激活函数。然后,item
representation
。我们把这个简化模型称作 NGCF-SVD
,它可以表述为:
显然,通过分别设置 SVD++
模型。
此外,另一个广泛使用的 item-based CF
模型 FISM
也可以被视为 NGCF
的特例,其中上式中
时间复杂度:我们可以看到,逐层(layer-wise
)传播规则是主要的操作。
对于第
对于预测层只涉及内积,它的时间复杂度为
因此,NGCF
的整体复杂度为 MF
和 NGCF
在 Gowalla
数据集上的训练成本分别为 20
秒左右和 80
秒左右,在推断期间MF
和 NGCF
的时间成本分别为 80
秒和 260
秒。
我们在真实世界的三个数据集上进行实验,从而评估我们提出的方法,尤其是 embedding
传播层。我们旨在回答以下研究问题:
RQ1
:和 SOTA
的 CF
方法相比,NGCF
的表现如何?
RQ2
:不同的超参数setting
(如,层的深度、embedding
传播层、layer-aggregation
机制、message dropout
、node dropout
)如何影响 NGCF
?
RQ3
:如何从高阶连通性中受益?
数据集:我们选择三个 benchmark
数据集Gowalla
、Yelp2018
、Amazon-book
。这些数据集可公开访问,并且在领域、规模、稀疏性等方面各不相同。
Gowalla
数据集:这是从 Gowalla
获得的 check-in
数据集,用户通过 checking-in
来共享他们的位置(location
)。为了确保数据集的质量,我们使用 10-core setting
,即保留至少有十次交互的用户和 item
。
Yelp2018
:来自2018
年的 Yelp
挑战赛的数据集,其中餐馆、酒吧等当地企业被视为 item
。为了确保数据质量,我们也使用 10-core setting
。
Amazon-book
:Amazon-review
是一个广泛使用的产品推荐数据集,这里我们从中选择了 Amazon-book
。同样地,我们使用 10-core setting
来确保每个用户和每个 item
至少有十次交互。
对于每个数据集,我们随机选择每个用户 80%
的历史交互构成训练集,其余的 20%
历史交互作为测试集。在训练集中,我们随机选择 10%
的交互作为验证集来调整超参数。
对于每个观察到的 user-item
交互,我们将其视为一个正样本,然后进行负采样策略:将用户和历史没有互动的负item
构建 pair
对。
这些数据集的统计信息如下表所示。
评估指标:对于测试集中的每个用户,我们将用户未交互的所有 item
视为负item
。然后每个方法输出用户对所有 item
(除了训练集中的正item
)的偏好分。为了评估 top-K
推荐和偏好排序(preference ranking
),我们采用了两种广泛使用的评估指标:recall@K
和 ndcg@K
,默认情况下 K=20
。我们报告测试集中所有用户的平均指标。
baseline
方法:为了证明有效性,我们将 NGCF
方法和以下方法进行比较:
MF
:这是通过贝叶斯个性化排名(Bayesian personalized ranking: BPR
)损失函数优化的矩阵分解方法,它仅利用 user-item
直接交互作为交互函数的目标值(target value
)。
NeuMF
:这是SOTA
的神经网络协同过滤模型。该方法拼接 user embedding
和 item embedding
,然后使用多个隐层从而捕获用户和 item
的非线性特征交互。具体而言,我们采用两层的普通架构,其中每个隐层的维度保持不变。
CMN
:这是SOTA
的 memory-based
模型,其中user representation
通过memory layer
有意地组合相邻用户的 memory slot
。注意,一阶连接用于查找和相同item
交互的相似用户。
HOP-Rec
:这是一个SOTA
的 graph-based
模型。该方法利用从随机游走得到的高阶邻居来丰富 user-item
交互数据。
PinSage
:该方法在 item-item graph
上应用 GraphSAGE
。在这里,我们将该方法应用于 user-item
交互图。具体而言,我们采用了两层图卷积层,并且隐层维度设为 embedding size
。
GC-MC
:该模型采用 GCN encoder
来生成 user representations
和 item representation
,其中仅考虑一阶邻居。具体而言,我们使用一层图卷积层,并且隐层维度设为 embedding size
。
我们也尝试了 Spectral CF
,但是发现特征分解导致很高的时间成本和资源成本,尤其是当用户数量和 item
数量很大时。因此,尽管该方法在小数据集上取得了不错的性能,但是我们没有选择和它进行比较。
为了公平地比较,所有方法都优化了 BPR loss
。
参数配置:我们在 Tensorflow
中实现了我们的 NGCF
模型。
所有模型的 embedding size
固定为 64
。
对于 HOP-Rec
,我们选择随机游走 step
的调优集合为 {1,2,3}
,学习率的调优集合为 {0.025, 0.020, 0.015, 0.010}
。
我们使用 Adam
优化器优化除了 HOP-Rec
之外的所有模型,其中 batch size
固定为 1024
。
在超参数方面,我们对超参数应用网格搜索:学习率搜索范围 {0.0001, 0.0005, 0.001, 0.005}
、L2
正则化系数搜索范围 dropout ratio
搜索范围 {0.0, 0.1, ... , 0.8}
。
此外,我们对 GC-MC
和 NGCF
应用node dropout
技术,其中 dropout ratio
搜索范围为 {0.0, 0.1, ... , 0.8}
。
我们使用 Xavier
初始化器来初始化模型参数。
我们执行早停策略:如果在连续 50
个 epoch
中,验证集的 recall@20
指标没有提升,则提前停止训练。
为了建模三阶连通性,我们将 NGCF L
的深度设置为 3
。在没有特殊说明的情况下,我们给出了三层embedding
传播层的结果,node dropout ratio = 0.0
、message dropout ratio = 0.1
。
我们从比较所有方法的性能开始,然后探索高阶连通性建模如何提升稀疏环境下的性能。
下表报告了所有方法性能比较的结果。可以看到:
MF
在三个数据集上的表现不佳。这表明内积不足以捕获用户和 item
之间的复杂关系,从而限制了模型性能。
NeuMF
在所有情况下始终优于 MF
,证明了user embedding
和 item embedding
之间非线性特征交互的重要性。
然而,MF
和 NeuMF
都没有显式地对 embedding
学习过程中的连通性进行建模,这很容易导致次优suboptimal
的representation
。
与 MF
和 NeuMF
相比,GC-MC
的性能验证了融合一阶邻居可以改善 representation learning
。
然而,在 Gowalla
中, GC-MC
在 ndcg@20
指标行不如 NeuMF
。原因可能是 GC-MC
未能充分探索用户和 item
之间的非线性特征交互。
大多数情况下,CMN
通常比 GC-MC
得到更好的性能。这种改进可能归因于神经注意力机制(neural attention mechanism
),它可以指定每个相邻用户的注意力权重,而不是 GC-MC
中使用的相同权重、或者启发式权重。
PinSage
在 Gowalla
和 Amazon-Book
中的表现略逊于 CMN
,但是在 Yelp2018
中的表现要好得多。同时 HOP-Rec
在大多数情况下总体上取得了显著的提升。
这是讲得通的,因为 PinSage
在 embedding
函数中引入了高阶连通性, HOP-Rec
利用高阶邻居来丰富训练数据,而 CMN
只考虑相似的用户。因此,这表明了对高阶连通性或高阶邻居建模的积极影响。
NGCF
始终在所有数据集上产生最佳性能。具体而言,NGCF
在 Gowalla、Yelp2018、Amazon-Book
数据集中在 recall@20
方面比最强baseline
分别提高了 11.68%、11.97%、9.61%
。
通过堆叠多个 embedding
传播层,NGCF
能够显式探索高阶连通性,而 CMN
和 GC-MC
仅利用一阶邻居来指导 representation learning
。这验证了在 embedding
函数中捕获协同信号的重要性。
此外,和 PinSage
相比,NGCF
考虑多粒度表示(multi-grained representation
)来推断用户偏好,而 PinSage
仅使用最后一层的输出。这表明不同的传播层在 representation
中编码不同的信息。
并且,对 HOP-Rec
的改进表明 embedding
函数中的显式编码 CF
可以获得更好的representation
。
HOP-Rec
效果也不错,而且计算复杂度不高、简单易于实现。
我们进行 one-sample
的 t-test
,p-value < 0.05
表明 NGCF
对最强baseline
(下划线标明)的改进在统计上是显著的。
稀疏性问题通常限制了推荐系统的表达能力,因为不活跃用户的少量交互不足以生成高质量的 representation
。我们考察利用连通性信息(connectivity information
)是否有助于缓解稀疏性问题。为此,我们对不同稀疏性水平的用户组(user group
)进行了实验。
具体而言,基于每个用户的交互次数,我们将测试集分为四组,每组的用户具有相同的交互次数。以 Gowalla
数据集为例,每个用户的交互次数分别小于 24、50、117、1014
。
下图展示了 Gowalla、Yelp 2018、Amazon-Book
数据集的不同用户组中关于 ndcg@20
的结果。背景的直方图表示每个分组中的用户量,曲线表示 ndcg@20
指标。我们在 recall@20
方面看到了类似的性能趋势,但是由于空间限制而省略了该部分。
可以看到:
NGCF
和 HOP-Rec
始终优于所有用户组的所有其它 baseline
。这表明利用高阶连通性可以极大地促进非活跃用户的 representation learning
,因为可以有效地捕获协同信号。因此,解决推荐系统中的稀疏性问题可能是有希望的,我们将其留待未来的工作中。
联合分析图 (a),(b),(c)
,我们观察到前两组取得的提升(例如,在 Gowalla
数据集中NGCF
对于 < 24
和 < 50
的最佳 baseline
上分别提高了 8.49%
和 7.79%
)比其它组更为显著(例如,在 Gowalla
数据集中NGCF
对于 < 1014
的最佳 baseline
提高了 1.29%
)。这验证了 embedding
传播有利于相对不活跃的用户。
由于 embedding
传播层在 NGCF
中起着举足轻重的作用,因此我们研究了它对于性能的影响。
我们首先探索层数的影响,然后我们研究拉普拉斯矩阵(即用户 item
此外,我们分析了关键因素的影响,例如 node dropout
和 message dropout
。
最后,我们还研究了 NGCF
的训练过程。
层数的影响:为了研究 NGCF
是否可以从多个 embedding
传播层中受益,我们改变了模型深度。具体而言,我们探索了层数为 {1,2,3,4}
。下表给出了实验结果,其中 NGCF-3
表示具有三层 embedding
传播层的模型,其它符号类似。联合下表和上表(所有方法性能比较结果表)可以看到:
增加 NGCF
的深度可以大大提升推荐效果。显然,NGCF-2
和 NGCF-3
在所有方面都比 NGCF-1
实现了一致的提升,因为 NGCF-1
仅考虑了一阶邻居。
我们将所有提升归因于 CF
效应的有效建模:协同用户相似性(collaborative user similarity
)和协同信号(collaborative signal
)分别由二阶连通性和三阶连通性承载(carried
)。
当在 NGCF-3
之后进一步堆叠传播层时,我们发现 NGCF-4
在 Yelp 2018
数据集上过拟合。这可能是因为太深的架构会给 representation learning
带来噪音。
而其它两个数据集上的边际提升证明了三层传播层足以捕获 CF
信号。
当传播层数变化时,NGCF
在三个数据集上始终优于其它方法。这再次验证了 NGCF
的有效性,从而表明显式建模高阶连通性可以极大地促进推荐任务。
embedding
传播层的效果和 Layer-Aggregation
机制:为了研究 embedding
传播层(即图卷积层)如何影响性能,我们考虑了使用使用不同layer
的 NGCF-1
变体。
具体而言,我们从消息传递函数中删除了节点及其邻居之间的representation
交互,并将其设置为 PinSage
和 GC-MC
的representation
交互,分别称为
对于
其中
缺少 和 的交互,也缺少图拉普拉斯范数。
对于
其中:
此外,基于 NGCF-SVD
,我们得到 NGCF
的关于SVD++
的变体,称作
我们在下表中显示了实验结果,并且可以发现:
NGCF-1
始终优于所有变体。我们将改进归因于 representation
交互(即 affinity
以及注意力机制等等函数。
同时,所有变体仅考虑线性变换。因此,这验证了我们 embedding
传播函数的合理性和有效性。
在大多数情况下,item
到用户的消息传递、只有用户到 item
的消息传递)和非线性变换的重要性。
联合下表和上表(所有方法性能比较结果表)可以看到:当将所有层的输出拼接在一起时, PinSage
和 GC-MC
获得更好的性能。这表明 layer-aggregation
机制的重要性。
dropout
效果:遵从 GC-MC
的工作,我们采用了 node dropout
和 message dropout
技术来防止 NGCF
过拟合。下图给出了 message dropout rate
node dropout rate
在两种 dropout
策略之间,node dropout
提供了更好的性能。以 Gowalla
为例,设置 recall@20
(0.1514
),这优于 message dropout
得到最好的 recall@20
(0.1506
) 。
一个可能的原因是:丢弃来自特定用户和特定 item
的所有 outgoing message
使得 representation
不仅可以抵抗特定边的影响,还可以抵抗节点的影响。因此,node dropout
比 message dropout
更有效,这和 GC-MC
工作的发现相一致。
我们认为这是一个有趣的发现,这意味着 node dropout
可以成为解决图神经网络过拟合的有效策略。
Epoch
对测试性能影响:下图给出了 MF
和 NGCF
在每个 epoch
的测试性能(recall@20
)。由于空间限制,我们省略了 ndcg@20
指标,因为该指标的性能趋势和 recall@20
是类似的。
可以看到:NGCF
在三个数据集上表现出比 MF
更快的收敛速度。
这是合理的,因为在 mini-batch
中优化交互 pair
对时,涉及间接相连的用户和 item
。这样的观察证明了 NGCF
具有更好的模型容量,以及在 embedding
空间中执行 embedding
传播的有效性。
这里我们试图了解 embedding
传播层如何促进 embedding
空间中的 representation learning
。为此,我们从 Gowalla
数据集中随机选择了 6
个用户及其相关的 item
。我们观察他们的 representation
如何受到 NGCF
深度的影响。
下图 (a)
和 (b)
分别显示了来自 MF
(即 NGCF-0
)和 NGCF-3
的 representation
的可视化(通过 t-SNE
)。每个星星代表Gowalla
数据集中的一个用户,和星星相同颜色的点代表相关的 item
。
注意,这些 item
来自测试集,并且这些 item
和用户构成的 pair
对不会出现在训练过程中。
可以看到:
用户和 item
的连通性很好地反映在 embedding
空间中,即它们嵌入到空间中相近的位置。
具体而言,NGCF-3
的 representation
表现出可识别的聚类,这意味着具有相同颜色的点(即相同用户消费的 item
)倾向于形成聚类。
联合分析图 (a)
和图 (b)
中的相同用户(例如 12201
黄色星星和 6880
蓝色星星),我们发现:当堆叠三层 embedding
传播层时,他们历史item
的 embedding
往往更加靠近。这定性地验证了所提出的 embedding
传播层能够将显式的协同信号(通过 NGCF-3
)注入到 representation
中。
将来的工作:
结合注意力机制进一步改进 NGCF
,从而在 embedding
传播过程中学习邻居的可变权重,以及不同阶连接性的可变权重。这将有利于模型的泛化和可解释性。
探索关于 user/item embedding
和图结构的对抗学习,从而增强 NGCF
的鲁棒性。这项工作代表了在基于模型的 CF
中利用消息传递机制开发结构知识的初步尝试,并开辟了新的研究可能性。